RocketMQ Streams コアコンセプト
ドメインモデル
StreamBuilder

- StreamBuilder のインスタンスは 1 つから N 個のパイプラインを持ち、パイプラインはデータ処理パスを表します。
- パイプラインには、GroupNode と呼ばれる 1 つから N 個の処理ノードを含めることができます。
- StreamBuilder のインスタンスには、データプロセッサを構築できる TopologyBuilder もあります。
- 各 JobId は StreamBuilder の 1 つのインスタンスに対応します。
RocketMQStream

- RocketMQStream のインスタンスは、トポロジーを構築するための TopologyBuilder を持っています。
- RocketMQStream のインスタンスは、1 つから N 個のワーカースレッドをインスタンス化できます。
- WorkerThread インスタンスで表される各スレッドには、エンジンが含まれています。
- エンジンには、データ処理を実行するためのすべてのロジックが含まれており、コンシューマーインスタンス、プロデューサーインスタンス、および StateStore インスタンスが含まれています。
ストリーム処理インスタンス
ストリーム処理インスタンスは、RocketMQ Streams を実行しているプロセスを表します。
- ストリーム処理のインスタンスには、1 つの StreamBuilder、1 つの RocketMQStream、1 つのトポロジー、および 1 つ以上のパイプラインが含まれています。
StreamBuilder
StreamBuilder(jobId)インスタンスを構築します。<OUT> RStream<OUT> source(topicName, deserializer)ソース トピックとデシリアライズ方法を定義します。
RStream
<K> GroupedStream<K, T> keyBy(selectAction)特定のフィールドでデータをグループ化します。<O> RStream<O> map(mapperAction)データを 1 対 1 で変換します。RStream<T> filter(predictor)データをフィルタリングします。<VR> RStream<T> flatMap(mapper)データを 1 対多で変換します。<T2> JoinedStream<T, T2> join(rightStream)2 つのストリームの結合を実行します。sink(topicName, serializer)結果を特定のトピックに出力します。
GroupedStream
同じキーを持つデータに対する操作
<OUT> GroupedStream<K, Integer> count(selectAction)特定のフィールドを含むデータエントリの数をカウントします。GroupedStream<K, V> min(selectAction)特定のフィールドの最小値を計算します。GroupedStream<K, V> max(selectAction)特定のフィールドの最大値を計算します。GroupedStream<K, ? extends Number> sum(selectAction)特定のフィールドの合計を計算します。GroupedStream<K, V> filter(predictor)特定のフィールドをフィルタリングします。<OUT> GroupedStream<K, OUT> map(valueMapperAction)1 対 1 のデータ変換を実行します。<OUT> GroupedStream<K, OUT> aggregate(accumulator)データに対して集計操作を実行し、ウィンドウがトリガーされる前にデータを追加し、ウィンドウがトリガーされたときに結果を計算するなど、2 次集計をサポートします。WindowStream<K, V> window(windowInfo)ストリームのウィンドウを定義します。GroupedStream<K, V> addGraphNode(name, supplier)低レベルインターフェースでカスタムオペレーターをストリーム処理トポロジーに追加します。RStream<V> toRStream()RStream に変換します。インターフェースの観点でのみ変換し、データには影響しません。sink(topicName, serializer)結果をカスタムシリアライズ形式でトピックに書き込みます。
WindowStream
ウィンドウに分割されたデータに対する操作
WindowStream<K, Integer> count()ウィンドウ内のデータエントリの数をカウントします。WindowStream<K, V> filter(predictor)ウィンドウ内のデータをフィルタリングします。<OUT> WindowStream<K, OUT> map(mapperAction)ウィンドウ内のデータに対して 1 対 1 のデータ変換を実行します。<OUT> WindowStream<K, OUT> aggregate(aggregateAction)ウィンドウ内のデータに対して多対 1 のデータ変換を実行します。<OUT> WindowStream<K, OUT> aggregate(accumulator)ウィンドウ内のデータに対して集計操作を実行し、ウィンドウがトリガーされる前にデータを追加し、ウィンドウがトリガーされたときに結果を計算するなど、2 次集計をサポートします。void sink(topicName, serializer)結果をカスタムシリアライズ形式でトピックに書き込みます。